/**
 * 模块加载区域
 * */
const gulp = require("gulp");
//启动服务器（并能时时同步）
const connect = require("gulp-connect");
//合并文件
//const concat = require("gulp-concat");
//编译scss文件为css
//const sass = require('gulp-sass');
//sass.compiler = require('node-sass');
//编译image文件
const imagemin = require('gulp-imagemin');
//获取变量路径
//const js  = require("./conf/index").js;
//const scss  = require("./conf/index").scss;
//es6写法
const {
	js,
	scss,
	proxyList
} = require("./conf/index");
const {
	watchJs,
	watchScss,
	mergeMyjs,
	mergeMyscss,
	getProxy
} = require("./utils/util");
//获取js文件路径的数组
//let jsTaskArray = [];
//let scssTaskArray = [];
let   [jsTaskArray,scssTaskArray] = []
/**
 * 功能定义区域
 * */
function init(){
	jsTaskArray = mergeMyjs(js,"js-","dev");
	scssTaskArray = mergeMyscss(scss,"scss-","dev");
}



////定义将js文件复制到dev工作文件夹中的命令(循环变量产生命令)
//function mergeMyjs(json){
//	for(let attr in json){
//		jsTaskArray.push("js-"+attr);
//		console.log(jsTaskArray)
//		gulp.task("js-"+attr,function(){
//			return gulp.src([json[attr].src+"*.js"])
//						.pipe(concat(attr+".js"))
//						.pipe(gulp.dest("./dev/js"))
//						.pipe(connect.reload());
//		})
//	}
//}
//
////定义将scss文件复制到dev工作文件夹中的命令(循环变量产生命令)
//function mergeMyscss(json){
//	for(let attr in json){
//		scssTaskArray.push("scss-"+attr);
//		gulp.task("scss-"+attr,function(){
//			return gulp.src([json[attr].src+"*.+(scss|sass)"])
//						.pipe(concat(attr+".scss"))
//						.pipe(sass().on("error",sass.logError))
//						.pipe(gulp.dest("./dev/css"))
//						.pipe(connect.reload());
//		})
//	}
//}
////监听多个js文件
//function watchJs(json){
//	for(let attr in json){
//		gulp.watch(json[attr].src+"*.js",["js-"+attr]);
//	}
//}
////监听多个scss文件
//function watchScss(json){
//	for(let attr in json){
//		gulp.watch(json[attr].src+"*.scss",["js-"+attr]);
//	}
//}



/**
 * 指令定义区域
 * */
//定义将html文件复制到dev工作文件夹中的命令
gulp.task("html",function(){
	return gulp.src(["./src/*.html"])
				.pipe(gulp.dest("./dev"))
				.pipe(connect.reload());
})
//定义将js文件复制到dev工作文件夹中的命令
//gulp.task("js-index",function(){
//	return gulp.src(["../src/js/index/*.js"])
//				.pipe(concat("index.js"))
//				.pipe(gulp.dest("../dev/js"))
//				.pipe(connect.reload());
//})
//gulp.task("js-login",function(){
//	return gulp.src(["../src/js/login/*.js"])
//				.pipe(concat("login.js"))
//				.pipe(gulp.dest("../dev/js"))
//				.pipe(connect.reload());
//})
gulp.task("json",function(){
	return gulp.src(["./src/data/*.json"])
				.pipe(gulp.dest("./dev/static"))
				.pipe(connect.reload());
})

gulp.task("image",function(){
	return gulp.src(["./src/image/*"])
				.pipe(gulp.dest("./dev/image"))
				.pipe(connect.reload());
})
//定义服务的同步，保证代码在src和dev中代码的一致性

gulp.task("connect",function(){
	connect.server({
            root: 'dev',
            livereload: true,
            middleware:function(proxyList){
				// return [cors];
                return getProxy(proxyList);
            }
      });
})

init();

//存放命令数组，便于执行
gulp.task("js",jsTaskArray);
gulp.task("scss",scssTaskArray);
//监听html文件的变化
gulp.task("watch",function(){
	//监听html文件
	gulp.watch("./src/*.html",["html"]);
	//监听scss,js文件
	gulp.watch("./src/scss/index/*.scss",["scss"])
	gulp.watch("./src/scss/login/*.scss",["scss"])
	gulp.watch("./src/scss/register/*.scss",["scss"])
	gulp.watch("./src/scss/category/*.scss",["scss"])
	gulp.watch("./src/scss/goods/*.scss",["scss"])
	gulp.watch("./src/scss/cart/*.scss",["scss"])
//	gulp.watch("../src/js/index/*.js",["js-index"]);
//	gulp.watch("../src/js/login/*.js",["js-login"]);
	watchJs(js,"js-");
	watchJs(scss,"scss-");
})
//监听文件的变化，发生变化立即同步代码
//gulp.task("gulp-dev",["html","connect","watch"])
gulp.task("gulp-dev",["html","js","image","json","scss","connect","watch"]);

require("./gulpbuild")
















